﻿using System.Collections.Generic;

namespace Cine
{
    public class SalaRepository : ISalaRepository
    {
        private IDictionary<long, Sala> _salas;
        private static SalaRepository _instance = null;

        private SalaRepository()
        {
            _salas = new Dictionary<long, Sala>();
            Create(1, 100);
            Create(2, 50);
            Create(3, 20);
        }

        public static SalaRepository GetInstance()
        {
            if (_instance == null)
            {
                _instance = new SalaRepository();
            }
            return _instance;
        }

        public Sala Read(long id)
        {
            Sala resultado;
            _salas.TryGetValue(id, out resultado);
            return resultado;
        }

        private Sala Create(long id, int nButacas)
        {
            Sala nuevaSala = new Sala(id, nButacas);
            _salas.Add(id, nuevaSala);
            return nuevaSala;
        }

        private Sala Create(Sala sala)
        {
            return Create(sala.Id, sala.NButacas);
        }
    }
}
